#include "simulation.h"



Simulation::Simulation()
{
}
/*
 * 功能：设置鼠标位置
 * 参数：x坐标，y坐标
 * 返回值：设置成功返回true，设置失败返回false
*/
bool Simulation::setMouseCoordinate(int x, int y)
{
    return SetCursorPos(x, y);
}

/*
 * 功能：设置鼠标位置
 * 参数：POINT结构体
 * 返回值：设置成功返回true，设置失败返回false
*/
bool Simulation::setMouseCoordinate(POINT mouse)
{
    return SetCursorPos(mouse.x, mouse.y);
}

/*
 * 功能：获取鼠标位置
 * 参数：无
 * 返回值：POINT结构体
*/
POINT Simulation::getMouseCoordinate()
{
    GetCursorPos(&mouse);
    return mouse;
}
/*
 * 功能：获取鼠标位置
 * 参数：无
 * 返回值：int
*/
int Simulation::getMouseX()
{
    GetCursorPos(&mouse);
    return mouse.x;
}
/*
 * 功能：获取鼠标位置
 * 参数：无
 * 返回值：int
*/
int Simulation::getMouseY()
{
    GetCursorPos(&mouse);
    return mouse.y;
}
/*
 * 功能：单击事件
 * 参数：无
 * 返回值：无
*/
void Simulation::click()
{
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Sleep(10);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
/*
 * 功能：双击事件
 * 参数：无
 * 返回值：无
*/
void Simulation::doubleCilck()
{
    click();
    Sleep(10);
    click();
}
/*
 * 功能：拖动事件
 * 参数：路径Route
 * 返回值：无
*/
void Simulation::drag(Route route)
{
    setMouseCoordinate(route.data[0].x, route.data[0].y);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    function(route);
    Sleep(10);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
/*
 * 功能：路径实现
 * 参数：路径Route
 * 返回值：无
*/
void Simulation::function(Route route)
{
    int size = route.data.size();
    for(int i=1; i<size; i++){
        Sleep(route.data[i].time);
        mouse_event(MOUSEEVENTF_MOVE, route.data[i].x, route.data[i].y, 0, 0);
    }
}

void Simulation::clickR()
{
    mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
    Sleep(10);
    mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
}

void Simulation::keyboard(int time,int BVK)
{
    keybd_event(BVK, 0, 0, 0);
    Sleep(time);
    keybd_event(BVK, 0, 2, 0);
}



















